package com.zxq.common.utils.retry;

import com.github.rholder.retry.Attempt;
import com.github.rholder.retry.RetryListener;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class RetryLogListener implements RetryListener {
    @Override
    public <T> void onRetry(Attempt<T> attempt) {
        // 重试次数（第一次重试其实是第一次调用），距离第一次重试的时延
        log.info("Retry time: {}, Retry delay: {}", attempt.getAttemptNumber(), attempt.getDelaySinceFirstAttempt());

        // 记录导致异常的原因
        if (attempt.hasException()) {
            log.warn("Cause by: {}", attempt.getExceptionCause().toString());
        }
    }
}
